Skip to content

Squoosh Designer Plugin: Figma plugin for orchestrating layout animations#2402

Merged
kovmarci86 merged 86 commits intogoogle:mainfrom
kovmarci86:squoosh-designer
Apr 21, 2026
Merged

Squoosh Designer Plugin: Figma plugin for orchestrating layout animations#2402
kovmarci86 merged 86 commits intogoogle:mainfrom
kovmarci86:squoosh-designer

Conversation

@kovmarci86
Copy link
Copy Markdown
Contributor

Work-in-progress beta/previews state of a Figma plugin that allows creating complex animations between variant changes.

kovmarci86 and others added 22 commits February 24, 2026 11:36
…oosh interpolation

This commit adds end-to-end support for custom keyframe animations
defined via Figma's `sharedPluginData` and propagates them to the
Squoosh runtime for interpolation.
…with Squoosh interpolation"

This reverts commit 384a558.

# Conflicts:
#	support-figma/DC Squoosh designer/rs/src/lib.rs
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 31, 2026

Codecov Report

❌ Patch coverage is 66.30631% with 187 lines in your changes missing coverage. Please review.
✅ Project coverage is 47.25%. Comparing base (af7cad8) to head (ba7197f).

Files with missing lines Patch % Lines
crates/dc_figma_import/src/animation_override.rs 47.02% 89 Missing ⚠️
crates/dc_squoosh_animation/src/lib.rs 75.27% 45 Missing ⚠️
support-figma/dc_squoosh_designer/rs/src/lib.rs 73.83% 28 Missing ⚠️
crates/dc_figma_import/src/document.rs 59.25% 11 Missing ⚠️
crates/dc_bundle/src/definition/view.rs 50.00% 5 Missing ⚠️
crates/dc_figma_import/src/transform_flexbox.rs 73.68% 5 Missing ⚠️
...rates/dc_figma_import/src/animation_spec_schema.rs 81.81% 4 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main    #2402      +/-   ##
============================================
+ Coverage     43.90%   47.25%   +3.35%     
  Complexity       19       19              
============================================
  Files            39       44       +5     
  Lines          4485     5036     +551     
  Branches         51       51              
============================================
+ Hits           1969     2380     +411     
- Misses         2502     2642     +140     
  Partials         14       14              
Flag Coverage Δ
kotlin 72.17% <ø> (ø)
rust 45.42% <66.30%> (+3.88%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@kovmarci86 kovmarci86 requested a review from dipenpradhan March 31, 2026 20:16
@kovmarci86 kovmarci86 requested a review from a user March 31, 2026 20:35
Copy link
Copy Markdown
Collaborator

@anshu10sep anshu10sep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Taking another pass through the architecture and design here are a few more thoughts regarding edge cases and scalability to consider.

Comment thread crates/dc_bundle/src/definition/view.rs
Comment thread support-figma/dc_squoosh_designer/rs/src/lib.rs Outdated
Comment thread support-figma/dc_squoosh_designer/src/services/DataMapper.ts Outdated
Copy link
Copy Markdown
Collaborator

@anshu10sep anshu10sep left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the updates! The fixes for the layout width/height defaults and the hex color parsing errors look great and address the most critical issues.

Since this is a beta/preview PR, the remaining structural suggestions and edge cases mentioned in the previous comments can be addressed in follow-up PRs as the plugin matures. Approving this!

@dipenpradhan
Copy link
Copy Markdown
Collaborator

Looks good, thanks for addressing comments!

@kovmarci86 kovmarci86 added this pull request to the merge queue Apr 21, 2026
Merged via the queue into google:main with commit d2382ca Apr 21, 2026
21 checks passed
@kovmarci86 kovmarci86 deleted the squoosh-designer branch April 21, 2026 18:17
dipenpradhan added a commit that referenced this pull request Apr 22, 2026
Create v0.39.0-RC02 


v0.39.0-RC01(#2446)
This commit bumps the version across all Gradle
(`gradle/libs.versions.toml`) and Cargo configuration files to `0.39.0`
(`0.39.0-SNAPSHOT` in Gradle). It also unifies the
`dc_squoosh_animation` and `dc_squoosh_parser` crates under the
workspace dependencies.

Changes and issues addressed since 0.38.4:
- Enhance LiveUpdate feature (Issues
#2282,
#2379)
- Add cargo publish steps to GitHub release workflow (Issues
#2435,
#2436)
- Squoosh Designer Plugin: Figma plugin for orchestrating layout
animations (Issue
#2402)
- Replace println!/eprintln! with Rust log API in library code (Issues
#2403,
#2411)
- Update dc_figma_import README to reflect current architecture (Issues
#426,
#2427)
- Add comprehensive unit tests for mergeStyles function (Issues
#1963,
#2416)
- Avoid double key events during animated transitions (Issues
#1514,
#2417)
- Clean up unwrap() calls in dc_jni crate (Issues
#670,
#2415)
- Security: Update rustls-webpki 0.103.10 -> 0.103.12 (Issue
#2434)
- Document supported Android SDK levels (Issues
#163,
#2429)
- Restore Modifier customization support in squoosh renderer (Issues
#2292,
#2426)
- Handle unknown Figma features in deserialization (Issues
#2305,
#2414)
- Add adaptive polling with exponential backoff for LiveUpdate (Issues
#2282,
#2423)
- Add comprehensive Rust layout unit tests (Issues
#405,
#2413)
- Update JNI dependency to 0.22.4 and refactor dc_jni (Issue
#2432)
- Enable CodeQL security scanning (Issues
#926,
#2412)
- Prevent Design Switcher from briefly showing 'Offline' (Issues
#142,
#2421)
- Stroke gradients account for stroke thickness (Issues
#1549,
#2420)
- Add performance logging for high-cost fetch operations (Issues
#281,
#2419)
- Remove unclaimed Open VSX extension recommendation (Issue
#2431)
- Add assembleRelease to CI to catch minified build issues (Issues
#435,
#2425)
- Deprecate and remove publish_designcompose.sh script (Issue
#2433)
- Clarify visibility documentation — parameter name is flexible (Issues
#660,
#2428)
- Add JDK installation instructions to Getting Started docs (Issues
#707,
#2424)
- Add security check for Figma token file permissions (Issues
#249,
#2418)
- Fix whilePressing interaction getting stuck on multi-touch drag (Issue
#2422)
- Fix SquooshRoot infinite recomposition and freeze on rapid tap (Issue
#2409)
- Fix #436:
Tutorial release build signing configuration
(#2437)
- Fix #291:
Progress marker alignment in nested instances
(#2444)
- Fix #244:
Rotated node margin calculation uses pre-rotation size
(#2439)

---------

Co-authored-by: anshu10sep <priyanksingh@google.com>
kovmarci86 pushed a commit to kovmarci86/automotive-design-compose that referenced this pull request Apr 22, 2026
This commit bumps the version across all Gradle
(`gradle/libs.versions.toml`) and Cargo configuration files to `0.39.0`
(`0.39.0-SNAPSHOT` in Gradle). It also unifies the
`dc_squoosh_animation` and `dc_squoosh_parser` crates under the
workspace dependencies.

Changes and issues addressed since 0.38.4:
- Enhance LiveUpdate feature (Issues google#2282, google#2379)
- Add cargo publish steps to GitHub release workflow (Issues google#2435,
google#2436)
- Squoosh Designer Plugin: Figma plugin for orchestrating layout
animations (Issue google#2402)
- Replace println!/eprintln! with Rust log API in library code (Issues
google#2403, google#2411)
- Update dc_figma_import README to reflect current architecture (Issues
google#426, google#2427)
- Add comprehensive unit tests for mergeStyles function (Issues google#1963,
google#2416)
- Avoid double key events during animated transitions (Issues google#1514,
google#2417)
- Clean up unwrap() calls in dc_jni crate (Issues google#670, google#2415)
- Security: Update rustls-webpki 0.103.10 -> 0.103.12 (Issue google#2434)
- Document supported Android SDK levels (Issues google#163, google#2429)
- Restore Modifier customization support in squoosh renderer (Issues
google#2292, google#2426)
- Handle unknown Figma features in deserialization (Issues google#2305, google#2414)
- Add adaptive polling with exponential backoff for LiveUpdate (Issues
google#2282, google#2423)
- Add comprehensive Rust layout unit tests (Issues google#405, google#2413)
- Update JNI dependency to 0.22.4 and refactor dc_jni (Issue google#2432)
- Enable CodeQL security scanning (Issues google#926, google#2412)
- Prevent Design Switcher from briefly showing 'Offline' (Issues google#142,
google#2421)
- Stroke gradients account for stroke thickness (Issues google#1549, google#2420)
- Add performance logging for high-cost fetch operations (Issues google#281,
google#2419)
- Remove unclaimed Open VSX extension recommendation (Issue google#2431)
- Add assembleRelease to CI to catch minified build issues (Issues google#435,
google#2425)
- Deprecate and remove publish_designcompose.sh script (Issue google#2433)
- Clarify visibility documentation — parameter name is flexible (Issues
google#660, google#2428)
- Add JDK installation instructions to Getting Started docs (Issues
google#707, google#2424)
- Add security check for Figma token file permissions (Issues google#249,
google#2418)
- Fix whilePressing interaction getting stuck on multi-touch drag (Issue
google#2422)
- Fix SquooshRoot infinite recomposition and freeze on rapid tap (Issue
google#2409)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants